// Object.defineProperty
var obj = {}; // 对象
// es5 就提供的api 兼容性更好
// react和vue 最新版 对浏览器有要求
Object.defineProperty(obj, 'num', {
    value: 1,
    // 属性描述
    configurable: true, // 控制改属性是否可以被修改或删除
    writable: false, // 控制属性是否可以被修改
    enumerable: false, // 控制属性是否可以被枚举
    // get: function() {
    //     return this.value
    // }
})
console.log(obj.num); // 1

console.log(Object.getOwnPropertyDescriptor(obj, 'num'))

Object.defineProperty(obj, 'name', {
    writable: true
})
obj.name = 'zs'
console.log(obj.name); // zs
console.log(Object.getOwnPropertyDescriptor(obj, 'name')); // { value: 'zs', writable: true, enumerable: false, configurable: false }